;Assembler header file for Font
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:11:42 2005
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 29 June 1996

        [       :LNOT: :DEF: Font_Hdr
        GBLS    Font_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET oslib/OS.Hdr"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

;Symbols for constants
Font_OSUnit                     *       400
Font_Inch                       *       72000
Font_Point                      *       1000
Font_CommandNull                *       &00
Font_CommandXMove               *       &09
Font_CommandLinefeed            *       &0A
Font_CommandYMove               *       &0B
Font_CommandReturn              *       &0D
Font_CommandGCol                *       &11
Font_CommandColours             *       &12
Font_CommandTrueColours         *       &13
Font_CommandComment             *       &15
Font_CommandUnderline           *       &19
Font_CommandFont                *       &1A
Font_CommandHomTrfm             *       &1B
Font_CommandTrfm                *       &1C
Font_Justify                    *       &1
Font_Rubout                     *       &2
Font_OSUnits                    *       &10
Font_GivenBlock                 *       &20
Font_GivenTrfm                  *       &40
Font_GivenLength                *       &80
Font_GivenFont                  *       &100
Font_Kern                       *       &200
Font_RightToLeft                *       &400
Font_BlendFont                  *       &800
Font_Given16Bit                 *       &1000
Font_Given32Bit                 *       &2000
Font_ReturnCaretPos             *       &20000
Font_ReturnBBox                 *       &40000
Font_ReturnMatrix               *       &80000
Font_ReturnSplitCount           *       &100000
Font_NoOutput                   *       &1
Font_AddHints                   *       &2
Font_OutputSkeleton             *       &4
Font_ConvertBitmap              *       &8
Font_ErrorIfBitmap              *       &10
Error_FontNoRoom                *       &200
Error_FontCacheFull             *       &201
Error_FontNoCache               *       &202
Error_FontTooLong               *       &203
Error_Font64K                   *       &204
Error_FontPalTooBig             *       &205
Error_FontBadTranBits           *       &206
Error_FontNotEnoughBits         *       &207
Error_FontNoFont                *       &208
Error_FontNoPixels              *       &209
Error_FontBadFontNumber         *       &20A
Error_FontNotFound              *       &20B
Error_FontBadFontFile           *       &20C
Error_FontNoHandles             *       &20D
Error_FontBadCounter            *       &20E
Error_FontBadCtrlChar           *       &20F
Error_FontsInUse                *       &210
Error_FontBadSegment            *       &211
Error_FontBadPrefix             *       &212
Error_FontReserved              *       &213
Error_FontBadCharCode           *       &214
Error_FontNoBitmaps             *       &215
Error_FontNoBitmaps2            *       &216
Error_FontBadFontCacheFile      *       &217
Error_FontFieldNotFound         *       &218
Error_FontBadMatrix             *       &219
Error_FontOverflow              *       &21A
Error_FontDivby0                *       &21B
Error_FontBadReadMetrics        *       &21C
Error_FontBadRGB                *       &21D
Error_FontEncodingNotFound      *       &21E
Error_FontMustHaveSlash         *       &21F
Error_FontBadEncodingSize       *       &220
Error_FontTooManyIDs            *       &221
Error_FontTooFewIDs             *       &222
Error_FontNoBaseEncoding        *       &223
Error_FontIdentifierNotFound    *       &224
Error_FontTooManyChunks         *       &225
Error_FontBadFontFile2          *       &226
Error_FontDataNotFound          *       &20B
Error_FontDataNotFound2         *       &20B
Font_NameLimit                  *       40
Font_System                     *       &0
Font_Current                    *       &0
Font_BitmapDeep                 *       &1
Font_BitmapHorizontalSubPixel   *       &2
Font_BitmapVerticalSubPixel     *       &4
Font_BitmapDelete               *       &8
Font_CharacteristicOldFormat    *       &1
Font_CharacteristicROM          *       &2
Font_CharacteristicMonochrome   *       &4
Font_CharacteristicFillRuleNonZero *       &8
Font_ReturnFontName             *       &10000
Font_ReturnLocalFontName        *       &20000
Font_UseLinefeed                *       &40000
Font_ReturnFontMenu             *       &80000
Font_AllowSystemFont            *       &100000
Font_GivenTick                  *       &200000
Font_ReturnEncodingMenu         *       &480000
Font_TickNone                   *       &0
Font_TickSystemFont             *       &1
Font_KernNoBBoxes               *       &1
Font_KernNoXOffsets             *       &2
Font_KernNoYOffsets             *       &4
Font_MetricsKernYOnly           *       &2
Font_MetricsKernXOnly           *       &4
Font_MetricsManyKernPairs       *       &8
Font_GivenEncodingMenu          *       &1

;Symbols for structure offsets and sizes
                                ^       0
                                #       Bits
Font_StringFlags                *       @

                                ^       0
                                #       Bits
Font_OutputFlags                *       @

                                ^       0
                                #       Byte
Font_F                          *       @

                                ^       0
Font_PaintBlock_space           #       OS_Coord
Font_PaintBlock_letter          #       OS_Coord
Font_PaintBlock_rubout          #       OS_Box
Font_PaintBlock                 *       @

                                ^       0
Font_ScanBlock_space            #       OS_Coord
Font_ScanBlock_letter           #       OS_Coord
Font_ScanBlock_split_char       #       Int
Font_ScanBlock_bbox             #       OS_Box
Font_ScanBlock                  *       @

                                ^       0
Font_Thresholds_t               #       Byte
Font_Thresholds                 *       @

                                ^       0
Font_ColourTable_c              #       Byte
Font_ColourTable                *       @

                                ^       0
                                #       Bits
Font_BitmapType                 *       @

                                ^       0
                                #       Bits
Font_CharacteristicFlags        *       @

                                ^       0
                                #       Int
Font_ListContext                *       @

                                ^       0
                                #       Bits
Font_KernFlags                  *       @

                                ^       0
                                #       Bits
Font_MetricFlags                *       @

                                ^       0
Font_BBoxInfo_bboxes            #       OS_Box
Font_BBoxInfo                   *       @

                                ^       0
Font_WidthInfo_widths           #       256*Int
Font_WidthInfo                  *       @

                                ^       0
Font_MiscInfo_x0                #       Short
Font_MiscInfo_y0                #       Short
Font_MiscInfo_x1                #       Short
Font_MiscInfo_y1                #       Short
Font_MiscInfo_xkern             #       Short
Font_MiscInfo_ykern             #       Short
Font_MiscInfo_italic_correction #       Short
Font_MiscInfo_underline_position #       Byte
Font_MiscInfo_underline_thickness #       Byte
Font_MiscInfo_cap_height        #       Short
Font_MiscInfo_xheight           #       Short
Font_MiscInfo_descender         #       Short
Font_MiscInfo_ascender          #       Short
Font_MiscInfo_reserved          #       Int
Font_MiscInfo                   *       @

                                ^       0
Font_MetricsMiscInfo_x0         #       Int
Font_MetricsMiscInfo_y0         #       Int
Font_MetricsMiscInfo_x1         #       Int
Font_MetricsMiscInfo_y1         #       Int
Font_MetricsMiscInfo_xkern      #       Int
Font_MetricsMiscInfo_ykern      #       Int
Font_MetricsMiscInfo_italic_correction #       Int
Font_MetricsMiscInfo_underline_position #       Byte
Font_MetricsMiscInfo_underline_thickness #       Byte
Font_MetricsMiscInfo_reserved_0 #       Byte
Font_MetricsMiscInfo_reserved_1 #       Byte
Font_MetricsMiscInfo_cap_height #       Int
Font_MetricsMiscInfo_xheight    #       Int
Font_MetricsMiscInfo_descender  #       Int
Font_MetricsMiscInfo_ascender   #       Int
Font_MetricsMiscInfo_reserved   #       Int
Font_MetricsMiscInfo            *       @

                                ^       0
                                #       Bits
Font_ShortKernPair              *       @

                                ^       0
Font_LongKernPair_c             #       Int
Font_LongKernPair_xkern         #       Int
Font_LongKernPair_ykern         #       Int
Font_LongKernPair               *       @

                                ^       0
Font_KernInfo_long_info_table   #       256*Int
Font_KernInfo_long_info_size    #       Int
Font_KernInfo_long_info_flags   #       Font_KernFlags
Font_KernInfo_long_info_pairs   #       Font_LongKernPair
                                ^       0
Font_KernInfo_short_info_table  #       256*Int
Font_KernInfo_short_info_size   #       Int
Font_KernInfo_short_info_flags  #       Font_KernFlags
Font_KernInfo_short_info_pairs  #       Font_ShortKernPair
Font_KernInfo                   *       @

                                ^       0
Font_ShortKernPairUCS_c1        #       Char
Font_ShortKernPairUCS_c2        #       Char
Font_ShortKernPairUCS_kern      #       Short
Font_ShortKernPairUCS           *       @

                                ^       0
Font_LongKernPairUCS_c1         #       Short
Font_LongKernPairUCS_c2         #       Short
Font_LongKernPairUCS_xkern      #       Short
Font_LongKernPairUCS_ykern      #       Short
Font_LongKernPairUCS            *       @

                                ^       0
Font_KernInfoUCS_long_info_table #       256*Int
Font_KernInfoUCS_long_info_size #       Int
Font_KernInfoUCS_long_info_flags #       Font_KernFlags
Font_KernInfoUCS_long_info_pairs #       Font_LongKernPairUCS
                                ^       0
Font_KernInfoUCS_short_info_table #       256*Int
Font_KernInfoUCS_short_info_size #       Int
Font_KernInfoUCS_short_info_flags #       Font_KernFlags
Font_KernInfoUCS_short_info_pairs #       Font_ShortKernPairUCS
Font_KernInfoUCS                *       @

                                ^       0
                                #       Bits
Font_DecodeFlags                *       @


;Symbols for SWI's and SWI reason codes
XFont_CacheAddr                 *       &60080
Font_CacheAddr                  *       &40080
   ;Exit
   ;  R0 = version (Int)
   ;  R2 = cache_size (Int)
   ;  R3 = cache_used (Int)

XFont_FindFont                  *       &60081
Font_FindFont                   *       &40081
   ;Entry
   ;  R1 -> font_name (String)
   ;  R2 = xsize (Int)
   ;  R3 = ysize (Int)
   ;  R4 = xres (Int)
   ;  R5 = yres (Int)
   ;Exit
   ;  R0 = font (Font_F)
   ;  R4 = xres_out (Int)
   ;  R5 = yres_out (Int)

XFont_LoseFont                  *       &60082
Font_LoseFont                   *       &40082
   ;Entry
   ;  R0 = font (Font_F)

XFont_ReadDefn                  *       &60083
Font_ReadDefn                   *       &40083
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = font_id (pointer to data)
   ;  R3 = &0
   ;Exit
   ;  R2 = xsize (Int)
   ;  R3 = ysize (Int)
   ;  R4 = xres (Int)
   ;  R5 = yres (Int)
   ;  R6 = age (Int)
   ;  R7 = usage_count (Int)

XFont_ReadIdentifier            *       &60083
Font_ReadIdentifier             *       &40083
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = buffer (pointer to data)
   ;  R3 = &4C4C5546
   ;Exit
   ;  R2 = used (Int)
   ;  R3 corrupted
   ;  R4 corrupted
   ;  R5 corrupted
   ;  R6 corrupted
   ;  R7 corrupted

XFont_ReadInfo                  *       &60084
Font_ReadInfo                   *       &40084
   ;Entry
   ;  R0 = font (Font_F)
   ;Exit
   ;  R1 = x0 (Int)
   ;  R2 = y0 (Int)
   ;  R3 = x1 (Int)
   ;  R4 = y1 (Int)

XFont_StringWidth               *       &60085
Font_StringWidth                *       &40085
   ;Entry
   ;  R1 -> s (String)
   ;  R2 = xmax (Int)
   ;  R3 = ymax (Int)
   ;  R4 = split (Int)
   ;  R5 = length (Int)
   ;Exit
   ;  R1 -> split_point (Char)
   ;  R2 = x (Int)
   ;  R3 = y (Int)
   ;  R4 = length_out (Int)
   ;  R5 = index_out (Int)

XFont_Paint                     *       &60086
Font_Paint                      *       &40086
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 -> string (String)
   ;  R2 = flags (Font_StringFlags)
   ;  R3 = xpos (Int)
   ;  R4 = ypos (Int)
   ;  R5 -> block (Font_PaintBlock)
   ;  R6 -> trfm (OS_Trfm)
   ;  R7 = length (Int)

XFont_Caret                     *       &60087
Font_Caret                      *       &40087
   ;Entry
   ;  R0 = colour_number (OS_ColourNumber)
   ;  R1 = height (Int)
   ;  R2 = unit_flags (Font_StringFlags)
   ;  R3 = x (Int)
   ;  R4 = y (Int)

XFont_ConverttoOS               *       &60088
Font_ConverttoOS                *       &40088
   ;Entry
   ;  R1 = x (Int)
   ;  R2 = y (Int)
   ;Exit
   ;  R1 = x_out (Int)
   ;  R2 = y_out (Int)

XFont_Converttopoints           *       &60089
Font_Converttopoints            *       &40089
   ;Entry
   ;  R1 = x (Int)
   ;  R2 = y (Int)
   ;Exit
   ;  R0 corrupted
   ;  R1 = x_out (Int)
   ;  R2 = y_out (Int)

XFont_SetFont                   *       &6008A
Font_SetFont                    *       &4008A
   ;Entry
   ;  R0 = font (Font_F)

XFont_CurrentFont               *       &6008B
Font_CurrentFont                *       &4008B
   ;Exit
   ;  R0 = font (Font_F)
   ;  R1 = bg_hint (OS_GCOL)
   ;  R2 = fill (OS_GCOL)
   ;  R3 = offset (Int)

XFont_FutureFont                *       &6008C
Font_FutureFont                 *       &4008C
   ;Exit
   ;  R0 = font (Font_F)
   ;  R1 = bg_hint (OS_GCOL)
   ;  R2 = fill (OS_GCOL)
   ;  R3 = offset (Int)

XFont_FindCaret                 *       &6008D
Font_FindCaret                  *       &4008D
   ;Entry
   ;  R1 -> s (String)
   ;  R2 = x (Int)
   ;  R3 = y (Int)
   ;Exit
   ;  R1 -> split_point (Char)
   ;  R2 = x_out (Int)
   ;  R3 = y_out (Int)
   ;  R4 = length_out (Int)
   ;  R5 = index_out (Int)

XFont_CharBBox                  *       &6008E
Font_CharBBox                   *       &4008E
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = c (Char)
   ;  R2 = unit_flags (Font_StringFlags)
   ;Exit
   ;  R1 = x0 (Int)
   ;  R2 = y0 (Int)
   ;  R3 = x1 (Int)
   ;  R4 = y1 (Int)

XFont_ReadScaleFactor           *       &6008F
Font_ReadScaleFactor            *       &4008F
   ;Exit
   ;  R1 = xfactor (Int)
   ;  R2 = yfactor (Int)

XFont_SetScaleFactor            *       &60090
Font_SetScaleFactor             *       &40090
   ;Entry
   ;  R1 = xfactor (Int)
   ;  R2 = yfactor (Int)

XFont_ListFonts                 *       &60091
Font_ListFonts                  *       &40091
   ;Entry
   ;  R1 = buffer1 (pointer to data)
   ;  R2 = context (Font_ListContext)
   ;  R3 = size1 (Int)
   ;  R4 = buffer2 (pointer to data)
   ;  R5 = size2 (Int)
   ;  R6 -> tick_font (String)
   ;Exit
   ;  R2 = context_out (Font_ListContext)
   ;  R3 = used1 (Int)
   ;  R5 = used2 (Int)

XFont_SetFontColours            *       &60092
Font_SetFontColours             *       &40092
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = bg_hint (OS_GCOL)
   ;  R2 = fill (OS_GCOL)
   ;  R3 = offset (Int)

XFont_SetPalette                *       &60093
Font_SetPalette                 *       &40093
   ;Entry
   ;  R1 = bg_hint (OS_GCOL)
   ;  R2 = fill (OS_GCOL)
   ;  R3 = offset (Int)
   ;  R4 = bg_hint_out (OS_Colour)
   ;  R5 = fill_out (OS_Colour)
   ;  R6 = &0

XFont_SetTruePalette            *       &60093
Font_SetTruePalette             *       &40093
   ;Entry
   ;  R1 = bg_hint (OS_GCOL)
   ;  R2 = fill (OS_GCOL)
   ;  R3 = offset (Int)
   ;  R4 = bg_hint_out (OS_Colour)
   ;  R5 = fill_out (OS_Colour)
   ;  R6 = &65757254

XFont_ReadThresholds            *       &60094
Font_ReadThresholds             *       &40094
   ;Entry
   ;  R1 = buffer (pointer to Font_Thresholds)

XFont_SetThresholds             *       &60095
Font_SetThresholds              *       &40095
   ;Entry
   ;  R1 -> thresholds (Font_Thresholds)

XFont_FindCaretJ                *       &60096
Font_FindCaretJ                 *       &40096
   ;Entry
   ;  R1 -> s (String)
   ;  R2 = x (Int)
   ;  R3 = y (Int)
   ;  R4 = xjust (Int)
   ;  R5 = yjust (Int)
   ;Exit
   ;  R1 -> split_point (Char)
   ;  R2 = x_out (Int)
   ;  R3 = y_out (Int)
   ;  R4 = length_out (Int)
   ;  R5 = index_out (Int)

XFont_StringBBox                *       &60097
Font_StringBBox                 *       &40097
   ;Entry
   ;  R1 -> s (String)
   ;Exit
   ;  R1 = x0 (Int)
   ;  R2 = y0 (Int)
   ;  R3 = x1 (Int)
   ;  R4 = y1 (Int)

XFont_ReadColourTable           *       &60098
Font_ReadColourTable            *       &40098
   ;Entry
   ;  R1 -> colour_table (Font_ColourTable)

XFont_MakeBitmap                *       &60099
Font_MakeBitmap                 *       &40099
   ;Entry
   ;  R1 -> font_name (String)
   ;  R2 = xsize (Int)
   ;  R3 = ysize (Int)
   ;  R4 = xres (Int)
   ;  R5 = yres (Int)
   ;  R6 = flags (Font_BitmapType)

XFont_UnCacheFile               *       &6009A
Font_UnCacheFile                *       &4009A
   ;Entry
   ;  R0 -> file_name (String)
   ;  R1 = recache (Bool)

XFont_SetFontMax                *       &6009B
Font_SetFontMax                 *       &4009B
   ;Entry
   ;  R0 = font_max (Int)
   ;  R1 = font_max1 (Int)
   ;  R2 = font_max2 (Int)
   ;  R3 = font_max3 (Int)
   ;  R4 = font_max4 (Int)
   ;  R5 = font_max5 (Int)
   ;  R6 = &0
   ;  R7 = &0

XFont_ReadFontMax               *       &6009C
Font_ReadFontMax                *       &4009C
   ;Exit
   ;  R0 = font_max (Int)
   ;  R1 = font_max1 (Int)
   ;  R2 = font_max2 (Int)
   ;  R3 = font_max3 (Int)
   ;  R4 = font_max4 (Int)
   ;  R5 = font_max5 (Int)
   ;  R6 corrupted
   ;  R7 corrupted

XFont_ReadFontPrefix            *       &6009D
Font_ReadFontPrefix             *       &4009D
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = buffer (pointer to String)
   ;  R2 = size (Int)
   ;Exit
   ;  R1 -> end (Char)
   ;  R2 corrupted

XFont_SwitchOutputToBuffer      *       &6009E
Font_SwitchOutputToBuffer       *       &4009E
   ;Entry
   ;  R0 = flags (Font_OutputFlags)
   ;  R1 = buffer (pointer to data)
   ;Exit
   ;  R1 -> end (Char)

XFont_SwitchOutputToBufferFlags *       &6009E
Font_SwitchOutputToBufferFlags  *       &4009E
   ;Entry
   ;  R0 = &0
   ;  R1 = &FFFFFFFF
   ;Exit
   ;  R0 = flags (Font_OutputFlags)
   ;  R1 corrupted

XFont_ReadFontMetrics           *       &6009F
Font_ReadFontMetrics            *       &4009F
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = bbox_info (pointer to Font_BBoxInfo)
   ;  R2 = xwidth_info (pointer to Font_WidthInfo)
   ;  R3 = ywidth_info (pointer to Font_WidthInfo)
   ;  R4 = misc_info (pointer to Font_MetricsMiscInfo)
   ;  R5 = kern_info (pointer to Font_KernInfo)
   ;  R6 = &0
   ;  R7 = &0
   ;Exit
   ;  R0 = flags (Font_MetricFlags)
   ;  R1 = bbox_info_size (Int)
   ;  R2 = xwidth_info_size (Int)
   ;  R3 = ywidth_info_size (Int)
   ;  R4 = misc_info_size (Int)
   ;  R5 = kern_info_size (Int)
   ;  R6 corrupted
   ;  R7 corrupted

XFont_ReadFontMetricsUCS        *       &6009F
Font_ReadFontMetricsUCS         *       &4009F
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = &0
   ;  R2 = &0
   ;  R3 = &0
   ;  R4 = misc_info (pointer to Font_MetricsMiscInfo)
   ;  R5 = &0
   ;  R6 = kern_info (pointer to Font_KernInfoUCS)
   ;  R7 = &0
   ;Exit
   ;  R0 = flags (Font_MetricFlags)
   ;  R1 corrupted
   ;  R2 corrupted
   ;  R3 corrupted
   ;  R4 = misc_info_size (Int)
   ;  R5 corrupted
   ;  R6 = kern_info_size (Int)
   ;  R7 corrupted

XFont_DecodeMenu                *       &600A0
Font_DecodeMenu                 *       &400A0
   ;Entry
   ;  R0 = flags (Font_DecodeFlags)
   ;  R1 -> menu (data)
   ;  R2 -> block (data)
   ;  R3 = buffer (pointer to data)
   ;  R4 = size (Int)
   ;Exit
   ;  R3 -> next_selection (Int)
   ;  R4 = used (Int)

XFont_ScanString                *       &600A1
Font_ScanString                 *       &400A1
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 -> s (String)
   ;  R2 = flags (Font_StringFlags)
   ;  R3 = x (Int)
   ;  R4 = y (Int)
   ;  R5 = block (pointer to Font_ScanBlock)
   ;  R6 -> trfm (OS_Trfm)
   ;  R7 = length (Int)
   ;Exit
   ;  R1 -> split_point (Char)
   ;  R3 = x_out (Int)
   ;  R4 = y_out (Int)
   ;  R7 = length_out (Int)

XFont_SetColourTable            *       &600A2
Font_SetColourTable             *       &400A2

XFont_CurrentRGB                *       &600A3
Font_CurrentRGB                 *       &400A3
   ;Exit
   ;  R0 = font (Font_F)
   ;  R1 = bg_hint (OS_Colour)
   ;  R2 = fill (OS_Colour)
   ;  R3 = offset (Int)

XFont_FutureRGB                 *       &600A4
Font_FutureRGB                  *       &400A4
   ;Exit
   ;  R0 = font (Font_F)
   ;  R1 = bg_hint (OS_Colour)
   ;  R2 = fill (OS_Colour)
   ;  R3 = offset (Int)

XFont_ReadEncodingFilename      *       &600A5
Font_ReadEncodingFilename       *       &400A5
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = buffer (pointer to String)
   ;  R2 = size (Int)
   ;Exit
   ;  R0 corrupted
   ;  R1 -> end (Char)
   ;  R2 corrupted

XFont_FindField                 *       &600A6
Font_FindField                  *       &400A6
   ;Entry
   ;  R1 -> identifier (String)
   ;  R2 = qualifier (Char)
   ;Exit
   ;  R1 -> field (String)
   ;  R2 = found (Bool)

XFont_ApplyFields               *       &600A7
Font_ApplyFields                *       &400A7
   ;Entry
   ;  R0 -> identifier (String)
   ;  R1 -> fields (String)
   ;  R2 = buffer (pointer to String)
   ;  R3 = size (Int)
   ;Exit
   ;  R3 = spare (Int)
   ;  R5 corrupted
   ;  R6 corrupted
   ;  R7 corrupted

XFont_LookupFont                *       &600A8
Font_LookupFont                 *       &400A8
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = &0
   ;  R2 = &0
   ;Exit
   ;  R2 = flags (Font_CharacteristicFlags)

XFont_EnumerateCharacters       *       &600A9
Font_EnumerateCharacters        *       &400A9
   ;Entry
   ;  R0 = font (Font_F)
   ;  R1 = character (Int)
   ;Exit
   ;  R0 corrupted
   ;  R1 = next_character (Int)
   ;  R2 = internal_character_code (Int)

Service_FontsChanged            *       &6E
   ;Entry
   ;  R1 = &6E

        ]
        END
